import Vue from 'vue'
import App from './App'
import './assets/global.css'
// 引入时间
import Time from './utils/time'

Vue.prototype.$time = Time
import router from './router'
import store from "./store";
import BaiduMap from 'vue-baidu-map'

Vue.use(BaiduMap, {ak: 'G1LFyjrNGIkns5OfpZnrCGAKxpycPLwb'})
import './plugins/element.js'
import './plugins/vcharts.js'
import ECharts from 'echarts'

Vue.prototype.$echarts = ECharts
import VueEcharts from 'vue-echarts'

Vue.component('v-chart', VueEcharts)

// 将自动注册所有组件为全局组件
import dataV from '@jiaminghi/data-view'

Vue.use(dataV)

// 引入样式
// import 'vue-easytable/libs/theme-dark/index.css'
// 导入 table 和 分页组件

// 注册到全局
// 打印
Vue.config.productionTip = false

// 方式1: 全局 - 过滤器
// 任意的.vue文件内"直接"使用
// 语法: Vue.filter("过滤器名", 值 => 处理结果)
// Vue.filter("reverse", val => val.split("").reverse().join(""))

// 过滤器接参数
Vue.filter("reverse", (val, s) => {
  return val.split("").reverse().join(s)
})

import AllPanel from "./components/AllPanel";

// 注册全局组件
Vue.component('all-panel', AllPanel)

// 全局指令 - 到处"直接"使用
Vue.directive("gfocus", {
  inserted(el) {
    el.focus() // 触发标签的事件方法
  }
})

// 目标: 自定义指令传值
Vue.directive('color', {
  inserted(el, binding) {
    el.style.color = binding.value
  },
  update(el, binding) {
    el.style.color = binding.value
  }
})

// 方式3: 引入所有vant组件
import Vant from 'vant';
import 'vant/lib/index.css'; // 引入vant所有组件样式
Vue.use(Vant); // 全局注册vant所有组件

// 方式1: 全局 - 自动按需引入vant组件
// (1): 下载 babel-plugin-import
// (2): babel.config.js - 添加官网说的配置 (一定要重启服务器)
// (3): main.js 按需引入某个组件, Vue.use全局注册 - 某个.vue文件中直接使用vant组件
// import {Button, Form, Field} from 'vant';
//
// Vue.use(Button) // Button组件全局注册, 真正注册的组件名VanButton
// Vue.use(Form);
// Vue.use(Field);
import Antd from 'ant-design-vue';

Vue.use(Antd)
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)
/* eslint-disable no-new */


import JsonExcel from "vue-json-excel"

Vue.component("downloadExcel", JsonExcel)
new Vue({
  el: '#app',
  router,
  store,
  components: {App},
  template: '<App/>'
})
